Non-volatile memory device with usb and wireless connectivity and method for controlling the connectivity

ABSTRACT

A non-volatile memory device having a USB connector with a USB controller, and a wireless antenna with a wireless controller. The USB controller and the wireless controller are both operatively connected to the non-volatile memory. When the non-volatile memory device is operatively connected to a host using the USB connector, the USB controller has priority over the wireless controller for read from, and write to, functions with the non-volatile memory. A corresponding method is also disclosed.

FIELD OF THE INVENTION

This invention relates to a non-volatile memory device with USB andwireless connectivity and to a method for controlling the connectivity.

BACKGROUND TO THE INVENTION

Non-volatile memory devices with USB connectivity are well known. Theyare often used as easily-carried storage devices, MP3 players, fortransferring data, for storing image date, and so forth. They can usetheir USB connector to interface with any host having a USB port suchas, for example, a digital camera, MP3 player, personal digitalassistant, personal computer, portable computer, printers, projectors,television receivers, radios, and so forth.

The introduction of wireless connectivity to such a device createsproblems on how to resolve the competing requirements for access to thenon-volatile memory by the two different connection systems.

SUMMARY OF THE INVENTION

In accordance with a first preferred aspect there is provided anon-volatile memory device having a USB connector and a USB controller,and a wireless antenna and a wireless controller. The USB controller andthe wireless controller are both operatively connected to thenon-volatile memory. When the non-volatile memory device is operativelyconnected to a host using the USB connector, the USB controller haspriority over the wireless controller for read from, and write to,functions with the non-volatile memory.

In accordance with a second preferred aspect there is provided anon-volatile memory device comprising:

-   -   a USB connector and a USB controller,    -   a wireless antenna and a wireless controller,    -   the USB controller and the wireless controller both being        operatively connected to the non-volatile memory;    -   wherein when in use and the USB connector is operatively        connected to a host, the wireless controller sends all commands        to the USB controller and when in use and the USB connector is        not operatively connected to the host, the wireless controller        sends all commands directly to a file allocation table of the        non-volatile memory.

According to a third preferred aspect there is provided a method forcontrolling access to a non-volatile memory of a non-volatile memorydevice having a USB connector, the access being by a USB controller anda wireless controller of the non-volatile memory device. The methodcomprises: providing priority for the USB controller over the wirelesscontroller for read from, and write to, functions with the non-volatilememory when the non-volatile memory device is operatively connected to ahost using the USB connector.

According to a fourth preferred aspect there is provided a method forcontrolling access to a non-volatile memory of a non-volatile memorydevice having a USB connector, the access being by a USB controller anda wireless controller of the non-volatile memory device, the methodcomprising:

-   -   when the USB connector is operatively connected to a host, the        wireless controller sends all commands to the USB controller and        when the USB connector is not operatively connected to the host,        the wireless controller sends all commands directly to a file        allocation table of the non-volatile memory.

For all aspects any command of the wireless controller for thenon-volatile memory may pass through the USB controller. The wirelesscontroller may be operatively connected to the USB controller via aninterface for enabling the USB controller to control, communicate withand respond to requests from the is wireless controller. The interfacemay comprise a first interface that forms a part of the USB controllerand a second interface that forms a part of the wireless controller. Thesecond interface may be for converting wireless protocol communicationsfor enabling them to be read by the USB controller. The conversion maybe to a USB protocol. The first interface may be for converting USBprotocol communications for enabling them to be read by the wirelesscontroller. The conversion may be to a wireless protocol.

The USB controller and the wireless controller have a master:slaverelationship with the USB controller as the master and the wirelesscontroller as the slave. The USB controller may be able to be enumeratedas a local drive, and the wireless controller may be able to beenumerated as a network drive. A file allocation table may be able to beregularly updated to accord to the priority of the controllers. Thewireless controller may be unable to access the non-volatile memory ifthe USB controller is accessing the memory. The USB controller may beunable to access the non-volatile memory if the wireless controller isaccessing the non-volatile memory. When in use the USB connector is notoperatively connected to the host, the wireless connector may be able tooperate independently of the USB controller.

For the second aspect the USB controller may check to determine of thewireless controller is accessing the non-volatile memory beforecommencing to access the non-volatile memory and, if the wirelesscontroller is accessing the non-volatile memory the USB controller waitsfor a conclusion of a command of is the access by the wireless controlbefore commencing to access the non-volatile memory.

The non-volatile memory device may be able to be used to enable a hostdevice that is not wireless-enabled to send data wirelessly. In such acase the non-volatile memory may act as a sham memory.

The wireless controller may check to determine if the non-volatilememory is able to receive a new command before accessing thenon-volatile memory, the check being made at the USB controller and, ifthe USB controller has access to the non-volatile memory the wirelesscontroller waits until the access by the USB controller has concludedbefore accessing the non-volatile memory.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the present invention may be fully understood and readilyput into practical effect there shall now be described by way ofnon-limitative example only a preferred embodiment of the presentinvention, the description being with reference to the accompanyingillustrative drawings.

In the drawings:

FIG. 1 is a perspective view of a preferred embodiment of a non-volatilememory device with USB and wireless connectivity;

FIG. 2 is a block diagram of the device of FIG. 1;

FIG. 3 is a flow chart for the operation of the device of FIGS. 1 and 2.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

To refer to FIGS. 1 and 2, there is shown a non-volatile memory device10 with a connector 12 configured to accord with the USB standard. Theconnector 12 has a USB controller 14. In this way data can be downloadedto or uploaded from non-volatile memory 16 using the USB connector 12 inthe normal manner. The non-volatile memory 16 may be a disc drive and/orflash memory. It may be a single memory device or may be several memorydevices.

In addition there is an antenna 18 for wireless connectivity of thedevice 10 to a host device (not shown). The wireless connectivity may beby any suitable system such as, for example, Bluetooth, WiFi, WiMax, andso forth. The antenna 18 may be built into the device 10 in which caseit would be entirely within the casing 20; or may be an additionalapparatus for releasable attachment to the device 10 using a suitableconnector (not shown). The antenna is controlled by the wirelesscontroller 22. If built-in, the casing should not be made of a metallicor other material that does not transmit wireless signals.

In this way the device 10 can be used in three different modes:

-   -   (i) when connected to a host using the USB connector 12 and for        the data download or upload to be via the USB connector 12 and        the USB controller 14. This is a mode that may be called USB/USB        indicating USB connectivity and USB operation;    -   (ii) when connected to a host using the USB connector 12 and for        the data download or upload to be via the antenna 18 and the        wireless controller 22. This is a mode that may be called        USB/Wireless indicating USB connectivity and wireless operation;        and    -   (iii) when connected to a host by the antenna 18 and for all        data upload or down load to be via the antenna 18 and wireless        controller 22, the USB connector 12 not being connected to a        host. This mode may be called Wireless/Wireless indicating        wireless connectivity and wireless operation.

In the first two modes, the device 10 has electrical power supplied tothe device 10 for the operation of the device 10 by the power lines ofthe USB connector 12. This power is used for all functions of the device10 including the operation of the USB controller 14 and the wirelesscontroller 22. In these two modes the presence of the power supplied bythe connector 12 may be used as an indicator that the device 10 is tooperate in one of these two modes.

In the third mode, electrical power for the operation of the device 10is provided by the EMF generated across antenna 18 and/or a battery inthe device 10. This power is used for the operation of the device 10except for the operation of the USB controller 14. In this mode, thelack of power supplied by the connector 12 may be used as an indicatorthat the device 10 is to operate in this mode, and that there is, andshould be, no power supplied to the USB controller 14. As such, thewireless controller 22 can operate independently of the USB controller14.

The memory 16 is operatively connected to and accessible by the USBcontroller 14 as well as the wireless controller 22. In the first twomodes, the USB controller 14 will have a higher priority for both readand write functions than the wireless controller 22. This may be done byhaving a master:slave relationship between the USB controller 14 and thewireless controller 22, with the USB controller 14 being the master andthe wireless controller being the slave.

Both the USB controller 14 and the wireless controller 22 are able towrite to and read from the memory 16. The USB controller 14 willenumerate as a local drive and therefore the host connected to it willhave a higher priority. The wireless controller 22 will be enumerated asa network drive and thus any host connected wirelessly will be connectedthrough the wireless LAN will be considered as a network drive and thushave a lower priority. Multiple users will be able to connect throughthe wireless controller 22.

In the first two modes, the wireless controller 22 and the USBcontroller 14 will be operatively connected via an interface. Theinterface is constituted by a first interface 15 that forms a part ofthe USB controller 14, and a second interface 23 that forms a part ofthe wireless controller 22. However, the two interfaces 15, 23 may becombined into firmware operatively located between the USB controller 14and the wireless controller 22, if required or desired. The interfaces15, 23 may be, for example, a Universal AsynchronousReceiver/Transmitter (“UART”), Service Provider Interface (“SPI”) orSecure Digital In/Out interface (“SDIO”). By means of the interfaces 15,23, the USB controller 14 will be able to control, communicate with andrespond to requests from the wireless controller 22 as any command ofthe wireless controller 22 for the memory 16 must pass through the USBcontroller 14.

The interface 23 is for converting wireless protocol communications toenable them to be read by the USB controller 14. The conversion is to aUSB-readable protocol. The interface 15 is for converting USB protocolcommunications to enable them to be read by the wireless controller 22.The conversion is to a wireless-readable protocol

The file allocation table 26 of the memory 16 will be updated atconstant intervals but the file allocation table 26 can receive only oneinput at a time.

As shown in FIG. 3, after starting (300), when a command is received itis first determined (301) if the USB connector 12 is connected to a host(not shown) This is determined by the voltage supplied from the host tothe USB device 10 through connector 12. If there is a voltage it isassumed that the USB controller is to write data to the memory 16 (302)or to read data from the memory 16. The source of the command is thendetermined (303). If the command is from the USB controller 14 (304),the USB controller 14 then checks to determine if the wirelesscontroller 22 is accessing the memory 16 (305), preferably by checkingfor a reading or writing command from the wireless controller 22. If not(308), the USB controller 14 will start to write the data to the memory(309) via the file allocation table 26 and the data line 28. If thewireless controller 22 is accessing the memory 16 (306), the controller14 will wait (307) for a predetermined time until the read/write commandis finished being serviced. It will then service the new command fromthe USB controller 14 and write the data (309).

If during the write command of the USB controller 14, a read or writecommand issues from the wireless controller 22, the read or writecommand from the wireless controller 22 will be rejected by the USBcontroller 14. After the write command from the USB controller 14 isfinished, the file allocation table 26 will be updated to the wirelessnetwork drive that is connected through the wireless controller 22.

If at (303) the command is from the wireless controller 22 (310), itpasses through the USB controller 14. The USB controller 14 then checksto determine if the wireless controller 22 is accessing the memory 16(311), preferably by checking for a reading or writing command from theUSB controller 14. If not (314), the wireless controller 14 will startto write the data to the memory (309) via the file allocation table 26and the data line 28. If the USB controller 14 is accessing the memory16 (312), the wireless controller 22 will wait (313) for a predeterminedtime until the read/write command is finished being serviced. It willthen service the new command from the wireless controller 22 and writethe data (309).

In the third mode, when the USB connector 12 is not connected to a host(316), the initial read or write command will be from the wirelesscontroller 22. The wireless controller 22 can therefore bypass the USBcontroller 14 and directly determine if the memory 16 is able to acceptnew commands (317). If the memory 16 is able to accept new commands(318), the data is sent to or read from the memory 16 (309) via the dataline 30 and the file allocation table 26.

During the read or write command from the wireless controller 22 beingserviced, a read or write command from the USB controller 14 will not beserviced and the command will not be able to be serviced until thecommand from the wireless controller is completed. If the memory 16 isnot able to accept new commands (320) due to, for example, the memory 16being accessed for whatever reason or for whatever function that thememory 16 may be performing, the command will not be allowed by thememory controller. After waiting a predetermined period (321) and whenthe memory 16 is able to receive new commands, the command will be ableto be approved and the data will be sent to or read from the memory 16through the data line 30 and the file allocation table 26 (309).

The non-volatile memory device may be able to be used to enable a hostdevice that is not wireless-enabled to send data wirelessly. In such acase the non-volatile memory may act as a sham memory.

In this description, and in the drawings, components of the device 10that are not relevant to the invention have been omitted for simplifyingthe understanding f the invention. For example, a controller for thenon-volatile memory 16 is not described nor illustrated even though onewould inherently be required, as would be known to a person skilled inthe technology.

Whilst there has been described in the foregoing description a preferredembodiment of the present invention it will be understood by thoseskilled in the technology concerned that many variations ormodifications in details of design or construction may be made withoutdeparting from the present invention.

1. a USB connector and a USB controller, a wireless antenna and awireless controller, the USB controller and the wireless controller bothbeing operatively connected to the non-volatile memory; wherein when inuse and the USB connector is operatively connected to a host, the USBcontroller has priority over the wireless controller for read from andwrite to functions with the non-volatile memory.
 2. A non-volatilememory device comprising: a USB connector and a USB controller, awireless antenna and a wireless controller, the USB controller and thewireless controller both being operatively connected to the non-volatilememory; wherein when in use and the USB connector is operativelyconnected to a host, the wireless controller sends all commands to theUSB controller and when in use and the USB connector is not operativelyconnected to the host, the wireless controller sends all commandsdirectly to a file allocation table of the non-volatile memory.
 3. Anon-volatile memory device as claimed in claim 1, wherein any command ofthe wireless controller for the memory passes through the USBcontroller; wherein the wireless controller is operatively connected tothe USB controller via an interface for enabling the USB controller tocontrol, communicate with and respond to requests from the wirelesscontroller; the interface comprising a first interface that forms a partof the USB controller and a second interface that forms a part of thewireless controller; the first interface being for converting USBprotocol communications for enabling them to be read by the wirelesscontroller. 4-5. (canceled)
 6. A non-volatile memory device as claimedin claim 3, wherein the second interface is for converting wirelessprotocol communications for enabling them to be read by the USBcontroller; and the conversion is to a USB protocol. 7-9. (canceled) 10.A non-volatile memory device as claimed in claim 1, wherein the USBcontroller is able to be enumerated as a local drive, and the wirelesscontroller is able to be enumerated as a network drive; the USBcontroller and the wireless controller having a master:slaverelationship with the USB controller as the master and the wirelesscontroller as the slave; the non-volatile memory device furthercomprising a file allocation table able to be regularly updated toaccord to the priority of the USB and wireless controllers. 11-12.(canceled)
 13. A non-volatile memory device as claimed in claim 1,wherein when in use the USB connector is not operatively connected tothe host, the wireless connector is able to operate independently of theUSB controller; the non-volatile memory device being able to be used forsending data wirelessly when connected to a host that is not enabledwith a protocol of the wireless controller.
 14. A non-volatile memorydevice as claimed in claim 1, wherein the wireless controller is unableto access the non-volatile memory if the USB controller is accessing thememory; the USB controller being unable to access the non-volatilememory if the wireless controller is accessing the non-volatile memory.15-16. (canceled)
 17. A method for controlling access to a non-volatilememory of a non-volatile memory device having a USB connector, theaccess being by a USB controller and a wireless controller of thenon-volatile memory device, the method comprising: providing priorityfor the USB controller over the wireless controller for read from, andwrite to, functions with the non-volatile memory when the non-volatilememory device is operatively connected to a host by the USB connector.18. A method for controlling access to a non-volatile memory of anon-volatile memory device having a USB connector, the access being by aUSB controller and a wireless controller of the non-volatile memorydevice, the method comprising: when the USB connector is operativelyconnected to a host, the wireless controller sends all commands to theUSB controller and when the USB connector is not operatively connectedto the host, the wireless controller sends all commands directly to afile allocation table of the non-volatile memory.
 19. A method asclaimed in claim 17, wherein any command of the wireless controller forthe memory passes through the USB controller; the wireless controllerbeing operatively connected to the USB controller via an interface andenables the USB controller to control, communicate with and respond torequests from the wireless controller; the interface comprising a firstinterface that forms a part of the USB controller and a second interfacethat forms a part of the wireless controller; the second interfaceconverting wireless protocol communications to enable them to be read bythe USB controller; and the conversion being to a USB protocol or awireless protocol. 20-23. (canceled)
 24. A method as claimed in claim19, wherein the first interface converts USB protocol communications forenabling them to be read by the wireless controller.
 25. (canceled) 26.A method as claimed in claim 17, wherein the USB controller isenumerated as a local drive, and the wireless controller is enumeratedas a network drive; the USB controller and the wireless controllerhaving a master:slave relationship with the USB controller as the masterand the wireless controller as the slave.
 27. (canceled)
 28. A method asclaimed in claim 17, further comprising regularly updating a fileallocation table to accord to the priority of the controllers.
 29. Amethod as claimed in claim 17, wherein the USB controller checks todetermine of the wireless controller is accessing the non-volatilememory before commencing to access the non-volatile memory and, if thewireless controller is accessing the non-volatile memory the USBcontroller waits for a conclusion of a command of the access by thewireless controller before commencing to access the non-volatile memory;the wireless controller being unable to access the non-volatile memoryif the USB controller is accessing the non-volatile memory; the wirelesscontroller checking to determine if the non-volatile memory is able toreceive a new command before accessing the non-volatile memory, thecheck being made at the USB controller and, if the USB controller hasaccess to the non-volatile memory the wireless controller waits untilthe access by the USB controller has concluded before accessing thenon-volatile memory. 30-31. (canceled)
 32. A method as claimed in claim17, wherein the USB controller is unable to access the non-volatilememory if the wireless controller is accessing the non-volatile memory;the non-volatile memory device being used to enable a host device thatis not wireless-enabled to send data wirelessly.
 33. A method as claimedin claim 17, wherein when in use the USB connector is not operativelyconnected to the host, the wireless connector operates independently ofthe USB controller; the non-volatile memory acting as a sham memory.34-35. (canceled)
 36. A non-volatile memory device as claimed in claim2, wherein any command of the wireless controller for the memory passesthrough the USB controller; wherein the wireless controller isoperatively connected to the USB controller via an interface forenabling the USB controller to control, communicate with and respond torequests from the wireless controller; the interface comprising a firstinterface that forms a part of the USB controller and a second interfacethat forms a part of the wireless controller; the first interface beingfor converting USB protocol communications for enabling them to be readby the wireless controller.
 37. A non-volatile memory device as claimedin claim 36, wherein the second interface is for converting wirelessprotocol communications for enabling them to be read by the USBcontroller, and the conversion is to a USB protocol.
 38. A non-volatilememory device as claimed in claim 2, wherein the USB controller is ableto be enumerated as a local drive, and the wireless controller is ableto be enumerated as a network drive; the USB controller and the wirelesscontroller having a master:slave relationship with the USB controller asthe master and the wireless controller as the slave; the non-volatilememory device further comprising a file allocation table able to beregularly updated to accord to the priority of the USB and wirelesscontrollers.
 39. A non-volatile memory device as claimed in claim 2,wherein when in use the USB connector is not operatively connected tothe host, the wireless connector is able to operate independently of theUSB controller; the non-volatile memory device being able to be used forsending data wirelessly when connected to a host that is not enabledwith a protocol of the wireless controller.
 40. A non-volatile memorydevice as claimed in claim 2, wherein the wireless controller is unableto access the non-volatile memory if the USB controller is accessing thememory; the USB controller being unable to access the non-volatilememory if the wireless controller is accessing the non-volatile memory.41. A method as claimed in claim 18, wherein any command of the wirelesscontroller for the memory passes through the USB controller; thewireless controller being operatively connected to the USB controllervia an interface and enables the USB controller to control, communicatewith and respond to requests from the wireless controller; the interfacecomprising a first interface that forms a part of the USB controller anda second interface that forms a part of the wireless controller; thesecond interface converting wireless protocol communications to enablethem to be read by the USB controller; and the conversion being to a USBprotocol or a wireless protocol.
 42. A method as claimed in claim 41,wherein the first interface converts USB protocol communications forenabling them to be read by the wireless controller.
 43. A method asclaimed in claim 18, wherein the USB controller is enumerated as a localdrive, and the wireless controller is enumerated as a network drive; theUSB controller and the wireless controller having a master:slaverelationship with the USB controller as the master and the wirelesscontroller as the slave.
 44. A method as claimed in claim 18, furthercomprising regularly updating a file allocation table to accord to thepriority of the controllers.
 45. A method as claimed in claim 18,wherein the USB controller checks to determine of the wirelesscontroller is accessing the non-volatile memory before commencing toaccess the non-volatile memory and, if the wireless controller isaccessing the non-volatile memory the USB controller waits for aconclusion of a command of the access by the wireless controller beforecommencing to access the non-volatile memory; the wireless controllerbeing unable to access the non-volatile memory if the USB controller isaccessing the non-volatile memory; the wireless controller checking todetermine if the non-volatile memory is able to receive a new commandbefore accessing the non-volatile memory, the check being made at theUSB controller and, if the USB controller has access to the non-volatilememory the wireless controller waits until the access by the USBcontroller has concluded before accessing the non-volatile memory.
 46. Amethod as claimed in claim 18, wherein the USB controller is unable toaccess the non-volatile memory if the wireless controller is accessingthe non-volatile memory; the non-volatile memory device being used toenable a host device that is not wireless-enabled to send datawirelessly.
 47. A method as claimed in claim 18, wherein when in use theUSB connector is not operatively connected to the host, the wirelessconnector operates independently of the USB controller; the non-volatilememory acting as a sham memory.